package com.itheima.mp.enums;


import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;


/*通用枚举
User类中有一个用户状态字段：
像这种字段我们一般会定义一个枚举，做业务判断的时候就可以直接基于枚举做比较。但是我们数据库采用的是int类型，对应的PO也是Integer。因此业务操作时必须手动把枚举与Integer转换，非常麻烦。
因此，MybatisPlus提供了一个处理枚举的类型转换器，可以帮我们把枚举类型与数据库类型自动转换。

要让MybatisPlus处理枚举与数据库类型自动转换，我们必须告诉MybatisPlus，枚举中的哪个字段的值作为数据库值。
MybatisPlus提供了@EnumValue注解来标记枚举属性：

配置枚举处理器
在application.yaml文件中添加配置：
mybatis-plus:
  configuration:
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

最终，查询出的User类的status字段会是枚举类型：
同时，为了使页面查询结果也是枚举格式，我们需要修改UserVO中的status属性：
并且，在UserStatus枚举中通过@JsonValue注解标记JSON序列化时展示的字段：

*/


@Getter
public enum UserStatus {

    NORMAL(1,"正常"),
    FROZEN(2,"冻结"),
    ;

    @EnumValue
    private final int value;
    @JsonValue
    private final String desc;

    UserStatus(int value,String desc) {

        this.value = value;
        this.desc = desc;

    }



}
